package com.mindbox.mueblesalpes.presentacion.seguridad;

import com.mindbox.mueblesalpes.negocio.entity.TipoUsuario;
import com.mindbox.mueblesalpes.presentacion.sesion.SessionInfo;
import com.mindbox.mueblesalpes.presentacion.utils.ReglasNavegacion;
import com.mindbox.mueblesalpes.presentacion.utils.RequestParameters;
import javax.faces.component.html.HtmlCommandButton;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

/**
 * Backing Bean del Menú
 * @author Jaimoto
 */
public class MenuBean {

    private HtmlCommandButton btnProductos;
    private HtmlCommandButton btnClientes;
    private HtmlCommandButton btnReportes;
    private HtmlCommandButton btnCompras;
    private HtmlCommandButton btnPromociones;

    /** Creates a new instance of MenuBean */
    public MenuBean() {
        HttpSession sesion = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
        SessionInfo sesionInfo = (SessionInfo) sesion.getAttribute(SessionInfo.class.getName());
        btnProductos = new HtmlCommandButton();
        btnClientes = new HtmlCommandButton();
        btnReportes = new HtmlCommandButton();
        btnCompras = new HtmlCommandButton();
        this.btnPromociones = new HtmlCommandButton();

        btnProductos.setRendered(false);
        btnClientes.setRendered(false);
        btnReportes.setRendered(false);
        btnCompras.setRendered(false);
        this.btnPromociones.setRendered(false);
        if(sesionInfo != null){
            if(sesionInfo.getUsuario() != null &&  sesionInfo.getUsuario().getTipoUsuario().equals(TipoUsuario.ADMINISTRADOR)){
                btnProductos.setRendered(true);
                btnClientes.setRendered(true);
                btnReportes.setRendered(true);
                this.btnPromociones.setRendered(true);
            }else{
                btnCompras.setRendered(true);
            }
        }
    }

    /**
     * Realiza el direccionamiento a la página de productos
     * @return regla de navegación
     */
    public String productos(){
        return ReglasNavegacion.menu_productos.toString();
    }

    /**
     * Realiza el direccionamiento a la página de clientes
     * @return regla de navegación 
     */
    public String clientes(){
        return ReglasNavegacion.menu_clientes.toString();
    }

    /**
     * Realiza el direccionamiento a la página de reportes
     * @return regla de navegación 
     */
    public String reportes(){
        return ReglasNavegacion.menu_reportes.toString();
    }

    /**
     * Realiza el direccionamiento a la página de inicio
     * @return regla de navegación 
     */
    public String inicio(){
        return ReglasNavegacion.inicio.toString();
    }

    /**
     * Realiza el direccionamiento a la página de compras
     * @return regla de navegación 
     */
    public String compras(){
        return ReglasNavegacion.compras.name();
    }

    /**
     * Realiza el direccionamiento a la página de promociones
     * @return regla de navegación
     */
    public String promociones(){
        return ReglasNavegacion.promociones.name();
    }


    
    /**
     * Realiza el direccionamiento a la página de registro
     * @return regla de navegación 
     */
    public String registrarse(){
        HttpSession sesion = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
        String next = null;
        if(sesion != null)
            next = (String)sesion.getAttribute(RequestParameters.next_page.name());
        if(next == null){
            //No viene de la pagina del carrito de compras
            sesion.setAttribute(RequestParameters.next_page.name(), ReglasNavegacion.inicio.name());
        }
        return ReglasNavegacion.insert_clientes.name();
    }

    /**
     * @return the btnProductos
     */
    public HtmlCommandButton getBtnProductos() {
        return btnProductos;
    }

    /**
     * @param btnProductos the btnProductos to set
     */
    public void setBtnProductos(HtmlCommandButton btnProductos) {
        this.btnProductos = btnProductos;
    }

    /**
     * @return the btnClientes
     */
    public HtmlCommandButton getBtnClientes() {
        return btnClientes;
    }

    /**
     * @param btnClientes the btnClientes to set
     */
    public void setBtnClientes(HtmlCommandButton btnClientes) {
        this.btnClientes = btnClientes;
    }

    /**
     * @return the btnReportes
     */
    public HtmlCommandButton getBtnReportes() {
        return btnReportes;
    }

    /**
     * @param btnReportes the btnReportes to set
     */
    public void setBtnReportes(HtmlCommandButton btnReportes) {
        this.btnReportes = btnReportes;
    }

    /**
     * @return the btnCompras
     */
    public HtmlCommandButton getBtnCompras() {
        return btnCompras;
    }

    /**
     * @param btnCompras the btnCompras to set
     */
    public void setBtnCompras(HtmlCommandButton btnCompras) {
        this.btnCompras = btnCompras;
    }

    /**
     * @return the btnPromociones
     */
    public HtmlCommandButton getBtnPromociones() {
        return btnPromociones;
    }

    /**
     * @param btnPromociones the btnPromociones to set
     */
    public void setBtnPromociones(HtmlCommandButton btnPromociones) {
        this.btnPromociones = btnPromociones;
    }

    
}